home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr44 / speller2.zip / EMS.H next >
C/C++ Source or Header  |  1995-02-06  |  2KB  |  91 lines

  1. #if !defined (_EMSARRAY_H)
  2. #define _EMSARRAY_H
  3. //////////////////////////////////////////////////////////////////
  4.  
  5. const   PAGESIZE                  = 16384;  //bytes
  6. const int intElemNums = PAGESIZE / sizeof(int);
  7.  
  8. typedef unsigned int Word ;
  9.  
  10.   class ems{
  11.     public:
  12.      Word Ems_Handle;
  13.      Word Page_Frame_Address;
  14.      Word Pages_Needed  ;
  15.      int PhysPage;
  16.      Word curblock;
  17.     Word offset;
  18.     Word page;
  19.      char far * NormalPtr ;
  20.      ems(int pageNo);
  21.      ems(long size,int pageNo);
  22.      ~ems();
  23.      int  Ems_Installed();
  24.      Word  Pages_Available();
  25.      void Alloc(Word Page_Requested);
  26.      void MapIn(Word Logical_Page_No, Word Physical_Page_No);
  27.      void Release();
  28.  
  29.      int Error() { return EmsError;}
  30.      int valid() { return !EmsError;}
  31.      void * at(long index);
  32.      protected:
  33.     int EmsError ;
  34.   };
  35.  
  36. const int
  37.   EMM_INT                   = 0x67,
  38.   DOS_Int                   = 0x21,
  39.   GET_PAGE_FRAME            = 0x41,
  40.   GET_UNALLOCATED_PAGE_COUNT= 0x42,
  41.   ALLOCATE_PAGES            = 0x43,
  42.   MAP_PAGES                 = 0x44,
  43.   DEALLOCATE_PAGES          = 0x45,
  44.   GET_VERSION               = 0x46,
  45.   STATUS_OK                 = 0x0;
  46.  
  47. enum EMM_ERROR {
  48.  
  49.  EMM_OK = 0,
  50.  EMM_NOTINSTALLED  = -1,
  51.  EMM_SOFTERROR     = 0x80,
  52.  EMM_HARDERROR     = 0x81,
  53.  EMM_BUSY          = 0x82,
  54.  EMM_BADHANDLE     = 0x83,
  55.  EMM_UNIMP         = 0x84,
  56.  EMM_NOFREEHAN     = 0x85,
  57.  EMM_CONTEXTERR    = 0x86,
  58.  EMM_WAYTOOBIG     = 0x87,
  59.  EMM_TOOBIG        = 0x88,
  60.  EMM_TOOSMALL      = 0x89,
  61.  EMM_BADLOGPAGE    = 0x8A,
  62.  EMM_BADFRAMENO    = 0x8B,
  63.  EMM_HSTATESAVFULL = 0x8C,
  64.  EMM_MSTATESAVFULL = 0x8D,
  65.  EMM_MSTATERESTERR = 0x8E,
  66.  EMM_UNIMPSUB      = 0x8F,
  67.  EMM_BADATTRIB     = 0x90,
  68.  EMM_NOFEATURE     = 0x91,
  69.  EMM_SRCOVERWRITE  = 0x92,
  70.  EMM_BADLENGTH     = 0x93,
  71.  EMM_CONEMSOVERLAP = 0x94,
  72.  EMM_OFFPAGE       = 0x95,
  73.  EMM_TOOLONG       = 0x96,
  74.  EMM_EMSEMSOVERLAP = 0x97,
  75.  EMM_LOST          = 0x98,
  76.  EMM_UNUSED        = 0x99,
  77.  EMM_BADALTREG     = 0x9A,
  78.  EMM_NOFREEALTREG  = 0x9B,
  79.  EMM_NOALTREG      = 0x9C,
  80.  EMM_BADALTREG2    = 0x9D,
  81.  EMM_NODEDDMA      = 0x9E,
  82.  EMM_BADDEDDMA     = 0x9F,
  83.  EMM_UNKNAME       = 0xA0,
  84.  EMM_NAMETAKEN     = 0xA1,
  85.  EMM_ADDRWRAP      = 0xA2,
  86.  EMM_BADPTR        = 0xA3,
  87.  EMM_FORBIDDENFUNC = 0xA4
  88.  
  89. };
  90. #endif // _EMSARRAY_H
  91.